{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from scipy import stats\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.covariance import EllipticEnvelope\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.rcParams[\"figure.figsize\"] = (8,6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "num_dimensions = 2\n",
    "num_samples = 1000\n",
    "outlier_ratio = 0.01\n",
    "num_inliers = int(num_samples * (1-outlier_ratio))\n",
    "num_outliers = num_samples - num_inliers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_0 = np.random.randn(num_inliers//3, num_dimensions) - 4\n",
    "x_1 = np.random.randn(num_inliers//3, num_dimensions) + 4\n",
    "x_2 = np.random.randn(num_inliers//3, num_dimensions) + 4\n",
    "\n",
    "# Add outliers sampled from a random uniform distribution\n",
    "x = np.r_[x_0, x_1, x_2, np.random.uniform(low=-10, high=10, size=(num_outliers, num_dimensions))]\n",
    "\n",
    "# Generate labels, 1 for inliers and -1 for outliers\n",
    "labels = np.ones(num_samples, dtype=int)\n",
    "labels[-num_outliers:] = -1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Applying sklearn.neighbors.LocalOutlierFactor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.neighbors import LocalOutlierFactor\n",
    "\n",
    "classifier = LocalOutlierFactor(n_neighbors=100)\n",
    "y_pred = classifier.fit_predict(x)\n",
    "\n",
    "# plot the level sets of the decision function\n",
    "xx, yy = np.meshgrid(np.linspace(-11,11,1000), np.linspace(-11,11,1000))\n",
    "Z = classifier._decision_function(np.c_[xx.ravel(), yy.ravel()])\n",
    "Z = Z.reshape(xx.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n6IP3AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1064267b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.contourf(xx, yy, Z, cmap=plt.cm.Greys_r)\n",
    "\n",
    "a = plt.scatter(x[:num_inliers, 0], x[:num_inliers, 1], c='green')\n",
    "b = plt.scatter(x[num_inliers:, 0], x[num_inliers:, 1], c='black')\n",
    "\n",
    "plt.xlim((-11, 11))\n",
    "plt.ylim((-11, 11))\n",
    "plt.legend([a, b],\n",
    "           [\"inliers\",\"outliers\"],\n",
    "           numpoints=1)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
